/*
Automatic clinic tests using a robot arm.
Copyright (C) 2010  CIC-CPC, CHU Gabriel Montpied
All other trademarks, logos and copyrights are the property
of their respective owners.

This file is part of cpc-painbot.

cpc-painbot is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

cpc-painbot is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with cpc-painbot.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef WINDUPDIALOG_H
#define WINDUPDIALOG_H

#include <QDialog>

namespace Ui {
    class WindUpDialog;
}

namespace seuil {
    class Determination;
}

/*! Stimulation Wind Up.
    Cette boîte de dialogue permet d'effectuer une stimulation Wind Up.
    Le paramétrage est effectué au préalable avec l'AssistantWindUp.
*/
class WindUpDialog : public QDialog
{
    Q_OBJECT
    //! Détermination liée.
    Q_PROPERTY(seuil::Determination* determination READ determination)

public:
    explicit WindUpDialog(QWidget *parent = 0);
    ~WindUpDialog();

    //! Détermination liée.
    seuil::Determination *determination() const { return determination_; }

public slots:
    //! Indique si la méthode est terminée.
    void setTerminer(bool finie);
    /*! Change la fréquence affichée. */
    void setFrequence(int frequence);

    //! Change le total des stimulations affiché.
    void setTotal(int total);

    //! Change le nombre de stimulation restante affiché.
    void setRestant(int restant);

    //! Change la douleur affichée et rajoute un point sur le graphique.
    void setDouleur(const QVariant &douleur);

protected:
    void changeEvent(QEvent *e);

private:
    Ui::WindUpDialog *ui;
    seuil::Determination *determination_;
};

#endif // WINDUPDIALOG_H
